#ifndef List_h
#define List_h

#include "Node.h"

template<class TEntity>
class List
{
      private :
          Node<TEntity> *first;
          Node<TEntity> *last;
          int length;   
             
      public :
          List();
          Node<TEntity>* getFirst();
          Node<TEntity>* getLast();
          Node<TEntity>* getByIndex(int index);
          void add(TEntity* entityToInsert);
          void edit(int index, TEntity* entityToUpdate);
          void remove(int index);
          int getLength();
};
#endif
